use clap::{Arg, Command};
use std::path::Path;
use log::info;
use log4rs;

mod otp;
mod tui_ui;
use tui_ui::run_tui;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 配置日志
    log4rs::init_file("log4rs.yaml", Default::default())?;
    info!("程序启动");

    let matches = Command::new("两步验证工具")
        .version("1.0")
        .author("Turbidsoul <sccn.sq@gmail.com>")
        .about("生成两步验证密钥和验证码")
        .arg(Arg::new("config")
            .short('c')
            .long("config")
            .value_name("CONFIG_FILE")
            .help("指定配置文件路径"))
        .get_matches();

    let config_path = matches.get_one::<String>("config")
        .map(|s| s.as_str())
        .unwrap_or("config.yml");

    if !Path::new(config_path).exists() {
        println!("错误：配置文件 '{}' 不存在。请提供有效的配置文件路径。", config_path);
        return Ok(());
    }
    // 运行TUI界面
    run_tui(config_path)?;

    Ok(())
}